#include "Common_Interrupt.h"

#include "App_Massage.h"

extern void xPortSysTickHandler(void);

/**
 * @brief 滴答定时器中断处理程序, 用于FreeRTOS的心跳
 *
 */
void SysTick_Handler(void)
{
    /*
        ①: 这一行代码检查任务调度器是否已经开始运行。

        ②: 如果调度器还没有开始运行，则不执行任何操作，直接返回。

        ③: 这是因为，在调度器开始运行之前，不需要进行调度或其他操作。
    */
    if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) {
        /*
                ①: 调用了一个特定于硬件平台的系统滴答处理函数。

                ②: 这个函数通常负责更新FreeRTOS的内部计数器，
            并可能触发上下文切换（如果需要的话）
         */
        xPortSysTickHandler();
    }
}

/**
 * @brief LPTIM 中断服务程序, LPTIM16中断触发100ms一次, 中断优先级4
 *
 */
void LPTIM_IRQHandler(void)
{

    if (FL_LPTIM16_IsActiveFlag_Update(LPTIM16)) {
        FL_LPTIM16_ClearFlag_Update(LPTIM16);

        /* 用于控制按摩时间 */
        if (massageConfig.massageResidueTime != 0) {
            --massageConfig.massageResidueTime;
        }
    }
}
